[
    {
        "id": "6236",
        "name": "Add skbedit action with valid mark",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 1",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  mark 1",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "c8cf",
        "name": "Add skbedit action with 32-bit maximum mark",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 4294967295 pipe index 1",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 1",
        "matchPattern": "action order [0-9]*: skbedit  mark 4294967295.*pipe.*index 1",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "407b",
        "name": "Add skbedit action with mark exceeding 32-bit maximum",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 666777888999",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*:  skbedit mark",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "d4cd",
        "name": "Add skbedit action with valid mark and mask",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 1/0xaabb",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  mark 1/0xaabb",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "baa7",
        "name": "Add skbedit action with valid mark and 32-bit maximum mask",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 1/0xffffffff",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  mark 1/0xffffffff",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "62a5",
        "name": "Add skbedit action with valid mark and mask exceeding 32-bit maximum",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 1/0xaabbccddeeff112233",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  mark 1/0xaabbccddeeff112233",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "bc15",
        "name": "Add skbedit action with valid mark and mask with invalid format",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 1/-1234",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  mark 1/-1234",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "57c2",
        "name": "Replace skbedit action with new mask",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ],
            "$TC actions add action skbedit mark 1/0x11223344 index 1"
        ],
        "cmdUnderTest": "$TC actions replace action skbedit mark 1/0xaabb index 1",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  mark 1/0xaabb",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "081d",
        "name": "Add skbedit action with priority",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit prio 99",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  priority :99",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "cc37",
        "name": "Add skbedit action with invalid priority",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit prio foo",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*:  skbedit priority",
        "matchCount": "0",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "3c95",
        "name": "Add skbedit action with queue_mapping",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit queue_mapping 909",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit queue_mapping 909",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "985c",
        "name": "Add skbedit action with queue_mapping exceeding 16-bit maximum",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit queue_mapping 67000",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*:  skbedit queue_mapping",
        "matchCount": "0",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "224f",
        "name": "Add skbedit action with ptype host",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit ptype host",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  ptype host",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "d1a3",
        "name": "Add skbedit action with ptype otherhost",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit ptype otherhost",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  ptype otherhost",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "b9c6",
        "name": "Add skbedit action with invalid ptype",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit ptype openair",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*:  skbedit ptype openair",
        "matchCount": "0",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "464a",
        "name": "Add skbedit action with control pipe",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit ptype host pipe index 11",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 11",
        "matchPattern": "action order [0-9]*: skbedit  ptype host pipe.*index 11 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "212f",
        "name": "Add skbedit action with control reclassify",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 56789 reclassify index 90",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 90",
        "matchPattern": "action order [0-9]*: skbedit  mark 56789 reclassify.*index 90 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "0651",
        "name": "Add skbedit action with control pass",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit queue_mapping 3 pass index 271",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 271",
        "matchPattern": "action order [0-9]*: skbedit queue_mapping 3 pass.*index 271 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "cc53",
        "name": "Add skbedit action with control drop",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit queue_mapping 3 drop index 271",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 271",
        "matchPattern": "action order [0-9]*: skbedit queue_mapping 3 drop.*index 271 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "ec16",
        "name": "Add skbedit action with control jump",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit priority 8 jump 9 index 2",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 2",
        "matchPattern": "action order [0-9]*: skbedit  priority :8 jump 9.*index 2 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "db54",
        "name": "Add skbedit action with control continue",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit priority 16 continue index 32",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 32",
        "matchPattern": "action order [0-9]*: skbedit  priority :16 continue.*index 32 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "1055",
        "name": "Add skbedit action with cookie",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit priority 16 continue index 32 cookie deadbeef",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 32",
        "matchPattern": "action order [0-9]*: skbedit  priority :16 continue.*index 32 ref.*cookie deadbeef",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "5172",
        "name": "List skbedit actions",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ],
            "$TC actions add action skbedit ptype otherhost",
            "$TC actions add action skbedit ptype broadcast",
            "$TC actions add action skbedit mark 59",
            "$TC actions add action skbedit mark 409"
        ],
        "cmdUnderTest": "$TC actions list action skbedit",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit",
        "matchCount": "4",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "a6d6",
        "name": "Add skbedit action with index at 32-bit maximum",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 808 index 4294967295",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action skbedit index 4294967295",
        "matchPattern": "action order [0-9]*: skbedit  mark 808.*index 4294967295",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "f0f4",
        "name": "Add skbedit action with index exceeding 32-bit maximum",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action skbedit mark 808 pass index 4294967297",
        "expExitCode": "255",
        "verifyCmd": "$TC actions get action skbedit index 4294967297",
        "matchPattern": "action order [0-9]*:.*skbedit.*mark 808.*pass.*index 4294967297",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "38f3",
        "name": "Delete skbedit action",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ],
            "$TC actions add action skbedit mark 42 index 9009"
        ],
        "cmdUnderTest": "$TC actions del action skbedit index 9009",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*:  skbedit mark 42",
        "matchCount": "0",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "ce97",
        "name": "Flush skbedit actions",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            "$TC actions add action skbedit mark 500",
            "$TC actions add action skbedit mark 501",
            "$TC actions add action skbedit mark 502",
            "$TC actions add action skbedit mark 503",
            "$TC actions add action skbedit mark 504",
            "$TC actions add action skbedit mark 505",
            "$TC actions add action skbedit mark 506"
        ],
        "cmdUnderTest": "$TC actions flush action skbedit",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*:  skbedit",
        "matchCount": "0",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "1b2b",
        "name": "Replace skbedit action with invalid goto_chain control",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ],
            "$TC actions add action skbedit ptype host pass index 90"
        ],
        "cmdUnderTest": "$TC actions replace action skbedit ptype host goto chain 42 index 90 cookie c1a0c1a0",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "action order [0-9]*: skbedit  ptype host pass.*index 90 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "630c",
        "name": "Add batch of 32 skbedit actions with all parameters and cookie",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action skbedit queue_mapping 2 priority 10 mark 7/0xaabbccdd ptype host inheritdsfield index \\$i cookie aabbccddeeff112233445566778800a1 \\\"; args=\"\\$args\\$cmd\"; done && $TC actions add \\$args\"",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "^[ \t]+index [0-9]+ ref",
        "matchCount": "32",
        "teardown": [
            "$TC actions flush action skbedit"
        ]
    },
    {
        "id": "706d",
        "name": "Delete batch of 32 skbedit actions with all parameters",
        "category": [
            "actions",
            "skbedit"
        ],
        "setup": [
            [
                "$TC actions flush action skbedit",
                0,
                1,
                255
            ],
            "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action skbedit queue_mapping 2 priority 10 mark 7/0xaabbccdd ptype host inheritdsfield index \\$i \\\"; args=\\\"\\$args\\$cmd\\\"; done && $TC actions add \\$args\""
        ],
        "cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action skbedit index \\$i \\\"; args=\"\\$args\\$cmd\"; done && $TC actions del \\$args\"",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action skbedit",
        "matchPattern": "^[ \t]+index [0-9]+ ref",
        "matchCount": "0",
        "teardown": []
    }
]
